/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import facade.facade;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import vo.encuestaVO;

/**
 *
 * @author miguel.duran
 */
@ManagedBean(name = "EncuestaBean")
@RequestScoped
public class EncuestaBean {
    private encuestaVO encuestavo = new encuestaVO();
    @ManagedProperty(value="#{param.radicado}")
    private String radicado;

    /** Creates a new instance of EncuestaBean */
    public EncuestaBean() {
        encuestavo.setAgilidad("Excelente");
        encuestavo.setInformacion("Excelente");
        encuestavo.setClaridad("Excelente");
        encuestavo.setSatisfaccion("Completamente satisfecho");
    }

    public encuestaVO getEncuestavo() {
        return encuestavo;
    }

    public void setEncuestavo(encuestaVO encuestavo) {
        this.encuestavo = encuestavo;
    }

    public String getRadicado() {
        return radicado;
    }

    public void setRadicado(String radicado) {
        this.radicado = radicado;
    }

    public void validarEmail(FacesContext context, UIComponent uIComponent, Object object) throws ValidatorException {
        String email = (String)object;

        //Set the email pattern string
        Pattern p = Pattern.compile(".+@.+\\.[a-z]+");

        //Match the given string with the pattern
        Matcher m = p.matcher(email);

        //Check whether match is found
        boolean matchFound = m.matches();
        
        if (!matchFound) {
            FacesMessage Mensaje = new FacesMessage();
            Mensaje.setDetail("Email no válido");
            Mensaje.setSummary("Email no válido");
            Mensaje.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(Mensaje);
        }
        
    }

    public void validarComentarios(FacesContext context, UIComponent uIComponent, Object object) throws ValidatorException {
        String comentarios = (String)object;
        if (comentarios.length() > 1000) {
            FacesMessage Mensaje = new FacesMessage("El tamaño de las observaciones es de máximo 1000 caracteres");
            throw new ValidatorException(Mensaje);
        }
    }
    
    public String responder() {
        facade fachada = new facade();
        Date fecha = new Date();
        //System.out.println("radicado: "+radicado);
        //System.out.println("pin: "+radicado);
        
        encuestavo.setRadicado(radicado);
        encuestavo.setFecha(fecha);
        
        fachada.crearEncuesta(encuestavo);
        
        return "OK";
    }
    
}
